/**
 */
package org.mro.grib.model.files.secondEdition.sections;

import java.nio.ByteBuffer;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Identification Section</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getStartOffset <em>Start Offset</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getEndOffset <em>End Offset</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getLength <em>Length</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getIdentificationOfOriginatingCentre <em>Identification Of Originating Centre</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getIdentificationOfOriginatingSubcentre <em>Identification Of Originating Subcentre</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getGribMasterTablesVersion <em>Grib Master Tables Version</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getGribLocalTablesVersion <em>Grib Local Tables Version</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getSignificanceOfReferenceTime <em>Significance Of Reference Time</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getYear <em>Year</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getMonth <em>Month</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getDay <em>Day</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getHour <em>Hour</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getMinute <em>Minute</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getSecond <em>Second</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getProductionStatus <em>Production Status</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getTypeOfData <em>Type Of Data</em>}</li>
 * </ul>
 * </p>
 *
 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getIdentificationSection()
 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description_en='Section 1 \u2013 Identification section' note_1_en='Local tables shall define those parts of the Master table which are reserved for local use except for the case described\r\nbelow. In any case, the use of Local tables in messages intended for non-local or international exchange is strongly\r\ndiscouraged.' note_2_en='If octet 10 contains 255 then only Local tables are in use, the Local table version number (octet 11) must not be zero nor\r\nmissing, and Local tables may include entries from the entire range of the tables.' note_3_en='If octet 11 is zero, octet 10 must contain a valid Master table version number and only those parts of the tables not\r\nreserved for local use may be used.' regulation_92.3.1_en='The length of the section, in units of octets, shall be expressed over the group of the first\r\nfour octets, i.e. over the first 32 bits.' regulation_92.3.2_en='The section number shall be expressed in the fifth octet.' regulation_92.3.3_en='Octets beyond 21 are reserved for future use and need not be present.'"
 * @generated
 */
public interface IdentificationSection extends EObject {
	/**
	 * Returns the value of the '<em><b>Start Offset</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Start Offset</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Start Offset</em>' attribute.
	 * @see #setStartOffset(long)
	 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getIdentificationSection_StartOffset()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Start offset' description_en='Section start offset'"
	 * @generated
	 */
	long getStartOffset();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getStartOffset <em>Start Offset</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Start Offset</em>' attribute.
	 * @see #getStartOffset()
	 * @generated
	 */
	void setStartOffset(long value);

	/**
	 * Returns the value of the '<em><b>End Offset</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>End Offset</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>End Offset</em>' attribute.
	 * @see #setEndOffset(long)
	 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getIdentificationSection_EndOffset()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='End offset' description_en='Section end offset'"
	 * @generated
	 */
	long getEndOffset();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getEndOffset <em>End Offset</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>End Offset</em>' attribute.
	 * @see #getEndOffset()
	 * @generated
	 */
	void setEndOffset(long value);

	/**
	 * Returns the value of the '<em><b>Length</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Length</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Length</em>' attribute.
	 * @see #setLength(int)
	 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getIdentificationSection_Length()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Length' description_en='Length of section in octets (21 or nn)'"
	 * @generated
	 */
	int getLength();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getLength <em>Length</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Length</em>' attribute.
	 * @see #getLength()
	 * @generated
	 */
	void setLength(int value);

	/**
	 * Returns the value of the '<em><b>Identification Of Originating Centre</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Identification Of Originating Centre</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Identification Of Originating Centre</em>' attribute.
	 * @see #setIdentificationOfOriginatingCentre(short)
	 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getIdentificationSection_IdentificationOfOriginatingCentre()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Originating/generating centre' description_en='Identification of originating/generating centre (see Common Code table C\u201311)'"
	 * @generated
	 */
	short getIdentificationOfOriginatingCentre();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getIdentificationOfOriginatingCentre <em>Identification Of Originating Centre</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Identification Of Originating Centre</em>' attribute.
	 * @see #getIdentificationOfOriginatingCentre()
	 * @generated
	 */
	void setIdentificationOfOriginatingCentre(short value);

	/**
	 * Returns the value of the '<em><b>Identification Of Originating Subcentre</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Identification Of Originating Subcentre</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Identification Of Originating Subcentre</em>' attribute.
	 * @see #setIdentificationOfOriginatingSubcentre(short)
	 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getIdentificationSection_IdentificationOfOriginatingSubcentre()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Originating/generating subcentre' description_en='Identification of originating/generating subcentre (allocated by originating/ generating\r\ncentre)'"
	 * @generated
	 */
	short getIdentificationOfOriginatingSubcentre();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getIdentificationOfOriginatingSubcentre <em>Identification Of Originating Subcentre</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Identification Of Originating Subcentre</em>' attribute.
	 * @see #getIdentificationOfOriginatingSubcentre()
	 * @generated
	 */
	void setIdentificationOfOriginatingSubcentre(short value);

	/**
	 * Returns the value of the '<em><b>Grib Master Tables Version</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Grib Master Tables Version</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Grib Master Tables Version</em>' attribute.
	 * @see #setGribMasterTablesVersion(byte)
	 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getIdentificationSection_GribMasterTablesVersion()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='GRIB Master tables version' description_en='GRIB Master tables version number (see Code table 1.0 and Note 1)'"
	 * @generated
	 */
	byte getGribMasterTablesVersion();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getGribMasterTablesVersion <em>Grib Master Tables Version</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Grib Master Tables Version</em>' attribute.
	 * @see #getGribMasterTablesVersion()
	 * @generated
	 */
	void setGribMasterTablesVersion(byte value);

	/**
	 * Returns the value of the '<em><b>Grib Local Tables Version</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Grib Local Tables Version</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Grib Local Tables Version</em>' attribute.
	 * @see #setGribLocalTablesVersion(byte)
	 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getIdentificationSection_GribLocalTablesVersion()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='GRIB Local tables version' description_en='Version number of GRIB Local tables used to augment Master tables (see Code table 1.1\r\nand Note 2)'"
	 * @generated
	 */
	byte getGribLocalTablesVersion();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getGribLocalTablesVersion <em>Grib Local Tables Version</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Grib Local Tables Version</em>' attribute.
	 * @see #getGribLocalTablesVersion()
	 * @generated
	 */
	void setGribLocalTablesVersion(byte value);

	/**
	 * Returns the value of the '<em><b>Significance Of Reference Time</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Significance Of Reference Time</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Significance Of Reference Time</em>' attribute.
	 * @see #setSignificanceOfReferenceTime(byte)
	 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getIdentificationSection_SignificanceOfReferenceTime()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Significance of reference time' description_en='Significance of reference time (see Code table 1.2)'"
	 * @generated
	 */
	byte getSignificanceOfReferenceTime();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getSignificanceOfReferenceTime <em>Significance Of Reference Time</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Significance Of Reference Time</em>' attribute.
	 * @see #getSignificanceOfReferenceTime()
	 * @generated
	 */
	void setSignificanceOfReferenceTime(byte value);

	/**
	 * Returns the value of the '<em><b>Year</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Year</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Year</em>' attribute.
	 * @see #setYear(short)
	 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getIdentificationSection_Year()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Year' description_en='Year (4 digits) of reference time of data'"
	 * @generated
	 */
	short getYear();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getYear <em>Year</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Year</em>' attribute.
	 * @see #getYear()
	 * @generated
	 */
	void setYear(short value);

	/**
	 * Returns the value of the '<em><b>Month</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Month</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Month</em>' attribute.
	 * @see #setMonth(byte)
	 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getIdentificationSection_Month()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Month' description_en='Month of reference time of data'"
	 * @generated
	 */
	byte getMonth();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getMonth <em>Month</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Month</em>' attribute.
	 * @see #getMonth()
	 * @generated
	 */
	void setMonth(byte value);

	/**
	 * Returns the value of the '<em><b>Day</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Day</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Day</em>' attribute.
	 * @see #setDay(byte)
	 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getIdentificationSection_Day()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Day' description_en='Day of reference time of data'"
	 * @generated
	 */
	byte getDay();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getDay <em>Day</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Day</em>' attribute.
	 * @see #getDay()
	 * @generated
	 */
	void setDay(byte value);

	/**
	 * Returns the value of the '<em><b>Hour</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Hour</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Hour</em>' attribute.
	 * @see #setHour(byte)
	 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getIdentificationSection_Hour()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Hour' description_en='Hour of reference time of data'"
	 * @generated
	 */
	byte getHour();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getHour <em>Hour</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Hour</em>' attribute.
	 * @see #getHour()
	 * @generated
	 */
	void setHour(byte value);

	/**
	 * Returns the value of the '<em><b>Minute</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Minute</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Minute</em>' attribute.
	 * @see #setMinute(byte)
	 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getIdentificationSection_Minute()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Minute' description_en='Minute of reference time of data'"
	 * @generated
	 */
	byte getMinute();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getMinute <em>Minute</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Minute</em>' attribute.
	 * @see #getMinute()
	 * @generated
	 */
	void setMinute(byte value);

	/**
	 * Returns the value of the '<em><b>Second</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Second</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Second</em>' attribute.
	 * @see #setSecond(byte)
	 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getIdentificationSection_Second()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Second' description_en='Second of reference time of data'"
	 * @generated
	 */
	byte getSecond();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getSecond <em>Second</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Second</em>' attribute.
	 * @see #getSecond()
	 * @generated
	 */
	void setSecond(byte value);

	/**
	 * Returns the value of the '<em><b>Production Status</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Production Status</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Production Status</em>' attribute.
	 * @see #setProductionStatus(byte)
	 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getIdentificationSection_ProductionStatus()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Production status of processed data' description_en='Production status of processed data in this GRIB message (see Code table 1.3)'"
	 * @generated
	 */
	byte getProductionStatus();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getProductionStatus <em>Production Status</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Production Status</em>' attribute.
	 * @see #getProductionStatus()
	 * @generated
	 */
	void setProductionStatus(byte value);

	/**
	 * Returns the value of the '<em><b>Type Of Data</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Type Of Data</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Type Of Data</em>' attribute.
	 * @see #setTypeOfData(byte)
	 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getIdentificationSection_TypeOfData()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Type of processed data' description_en='Type of processed data in this GRIB message (see Code table 1.4)'"
	 * @generated
	 */
	byte getTypeOfData();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.sections.IdentificationSection#getTypeOfData <em>Type Of Data</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Type Of Data</em>' attribute.
	 * @see #getTypeOfData()
	 * @generated
	 */
	void setTypeOfData(byte value);

	/**
	 * 
	 * @param buffer
	 */
	void initialise(ByteBuffer buffer);
	
} // IdentificationSection
